﻿using System.Runtime.Serialization;

namespace FuiouPay.Models.Request {
    public class RefundRequestInfo : FuiouRequestInfo {
        /// <summary>
        /// 必填，商户订单号, 商户系统内部的订单号 (5到30个字符、只能包含字母数字,区分大小写)
        /// </summary>
        [DataMember(Name = "mchnt_order_no")]
        public string MchntOrderNo { get; set; }

        /// <summary>
        /// 必填，订单类型: 
        /// ALIPAY(统一下单、条码支付、服务窗支付)
        /// WECHAT(统一下单、条码支付、公众号支付、小程序)
        /// UNIONPAY
        /// BESTPAY(翼支付)
        /// </summary>
        [DataMember(Name = "order_type")]
        public string OrderType { get; set; }

        /// <summary>
        /// 必填，商户退款单号 (5到30个字符、只能包含字母数字或者下划线，区分大小写)
        /// </summary>
        [DataMember(Name = "refund_order_no")]
        public string RefundOrderNo { get; set; }

        /// <summary>
        /// 必填，总金额
        /// </summary>
        [DataMember(Name = "total_amt")]
        public long TotalAmt { get; set; }

        /// <summary>
        /// 必填，退款金额
        /// </summary>
        [DataMember(Name = "refund_amt")]
        public long RefundAmt { get; set; }

        /// <summary>
        /// 操作员
        /// </summary>
        [DataMember(Name = "operator_id")]
        public string OperatorId { get; set; }

        /// <summary>
        /// 富友终端号
        /// </summary>
        [DataMember(Name = "reserved_fy_term_id")]
        public string ReservedFyTermId { get; set; }

        /// <summary>
        /// 原交易日期(yyyyMMdd)！该值必定等于reserved_fy_settle_dt(富友接收交易时间。理论和合作方下单时间一致。微量跨日交易会不一致)。
        /// 不填该值，支持30天内的交易进行退款。
        /// 填写该值，支持90天。
        /// </summary>
        [DataMember(Name = "reserved_origi_dt")]
        public string ReservedOrigiDt { get; set; }

        /// <summary>
        /// 附加数据
        /// </summary>
        [DataMember(Name = "reserved_addn_inf")]
        public string ReservedAddnInf { get; set; }
    }
}
